////////////////////////////////////////////////////////////////////////////////////////
//	File Name	:	"BitmapFont.h"
//
//	Author		:	Stephen Ringer (SR)
//
//	Purpose		:	To contain all BitmapFont functionality
////////////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "SGD Wrappers/CSGD_TextureManager.h"
#include <vector>
#include <string>
using std::string;
using std::vector;

class CBitmapFont
{
	int			m_nImageID;
	int			m_nSize;
	int			m_nCount;
	struct tChar
	{
		int 	m_nID;
		int 	m_nXOffset;
		int 	m_nYOffset;
		RECT	m_rectDraw;
		int Width() {return m_rectDraw.right - m_rectDraw.left;}
		int Height() {return m_rectDraw.bottom - m_rectDraw.top;}
	};
	vector<tChar>	m_vChars;
public:
	//int CellWidth() const { return m_v; }
	//int CellHeight() const { return m_nCellHeight; }
	////////////////////////////////////////////////////////////////////////////////////////
	//	Function: "Init"
	//
	//	Purpose		:	To initialize tBitmapFont data
	////////////////////////////////////////////////////////////////////////////////////////
	void Init(char *szFilename);
	////////////////////////////////////////////////////////////////////////////////////////
	//	Function: "Kill"
	//
	//	Purpose		:	To shutdown a  tBitmapFont object
	////////////////////////////////////////////////////////////////////////////////////////
	void Kill();
	////////////////////////////////////////////////////////////////////////////////////////
	//	Function: "DrawBitmapText"
	//
	//	Purpose		:	To render the given in text in the given in font
	////////////////////////////////////////////////////////////////////////////////////////
	void DrawBitmapText(char* cText, int nPosX, int nPosY, float fScale, DWORD dwColor = -1);
	bool LoadBitmapText(char* szFont);
};